#ifndef ACTIONPANEL_H_
#define ACTIONPANEL_H_

#include <wx/wx.h>
#include <vector>
#include "BuddyList.h"
#include "../../core/Actions.h"
#include "../../core/events/ActionEvent.h"

namespace Impp
{

class BuddyList;

class ActionLabel
{
private:
	wxString actionClassName;
	wxStaticText* label;
	std::vector<Action*> actions;

public:
	ActionLabel(const wxString & actionClassName, Action* action);
	~ActionLabel();

	wxStaticText* getLabel();
	wxString getActionClassName();
	void setLabel(wxStaticText* label);
	void addAction(Action* action);
	bool removeAction(Action* action);
	size_t getActionsCount();
	wxString getLabelString();

};


class ActionPanel : public wxPanel
{
private:
	BuddyList* list;
	wxBoxSizer* sizer;
	std::vector<ActionLabel*> actionLabels;

public:
	ActionPanel(BuddyList* list, wxWindow* parent,const int & id);
	virtual ~ActionPanel();

	void onActionEvent(ActionEvent & event);
};

}

#endif /*ACTIONPANEL_H_*/
